この項では、JMS/XLA APIを使用するアプリケーションに固有のパフォーマンス・チューニングのヒントを示します。JMS/XLAでは、オーバーヘッドが発生するため、C XLA APIを使用した場合より低速となります。C APIでは、レコードがユーザーにバッチで戻されます。JMSモデルでは、オブジェクトがインスタンス化され、MessageListener onMessageメソッドに対するコールバックで各レコードが1つずつ示されます。高パフォーマンスのアプリケーションでは、チューニングを行ってこのオーバーヘッドの一部を回避できます。
トランザクション・ログを読み取るJMSレイヤーの基礎となるコードは、オブジェクト/行をユーザーに示す前にできるかぎり多くの行をフェッチ可能な場合、より効率的になります。プリフェッチの量は、xlaPrefetchパラメータが指定されたjmsxla.xml構成ファイルで制御されます。プリフェッチ数は、100、1000などの大きい値に設定します。
ttXlaAcknowledgeをコールすると、ブックマークが移動され、システム表への更新が実行されます。このため、スループットを増加する方法の1つとして、いくつかのトランザクションが実行されるまで待機してからコールを発行する方法があります。これには、リーダー・アプリケーションで同じレコード・セットが複数回戻されることを許容できる必要があります。ブックマークの移動は、セッションのインスタンス化時に、セッションのCLIENT_ACKNOWLEDGEモードを使用して手動で実行できます。
Session session = connection.createSession (false, Session.CLIENT_ACKNOWLEDGE);この値の妥当な設定値は、ほとんどのアプリケーションの場合、100です。
XLAを使用している場合は、大きいログ・バッファ・サイズがコールされます。XLAを有効にすると、XLAの追加情報を格納するために追加のログ・レコードが生成されます。ログ・バッファを適切なサイズにするために、SYS.MONITOR表エントリ(LOG_FS_READSおよびLOG_BUFFER_WAITS)での変更を監視できます。最適なパフォーマンスを実現するには、これらの値を両方とも0(ゼロ)のままにしておく必要があります。これらの値を0(ゼロ)にしておくためにログ・バッファ・サイズを増やす必要がある場合があります。